package code.c04_String.homework;

import java.util.Scanner;

/**
 * @author thinkpad - 83start
 * @version v1.0
 * @create 2022/10/21 20:28
 * @package code.c04_String.homework
 * @description 文件说明
 */

public class Test2 {
    public static void main(String[] args) {
        // 输入两个数，求最大公约数和最小公倍数
        System.out.println("请输入两个正整数：");
        int num1 = new Scanner(System.in).nextInt();
        int num2 = new Scanner(System.in).nextInt();
        if (num1 <= 0 || num2 <= 0) {
            System.out.println("输入错误，请重新输入");
            return;
        }
        int temp = 0;
        // 定义公约数
        int yShu = 0;
        // 定义公倍数
        int bShu = num1 * num2;   // 6 * 18 = 108
        // 将小的放后面，下面用大的除小的
        if (num1 > num2) {        // 6 < 18
            temp = num2;
            num2 = num1;
            num1 = temp;
        }
        // 若大的除以小的余数为0，则可以直接判断小的为两个数的最大公约数
        // 若有余数的话继续辗转用大的除以小的，最后得到小的就是公约数，最小为1
        while(num1 != 0) {         // 6 != 0
            temp = num2 % num1;    // temp = 18 % 6 = 0
            num2 = num1;           // num2 = 6
            num1 = temp;           // num1 = 0
        }
        yShu = num2;               // yShu = 6
        // 最小公倍数等于两者乘积除以最大公约数
        bShu /= num2;              // bShu = 108 / 6 = 18
        System.out.println("最大公约数为：" + yShu);
        System.out.println("最小公倍数为：" + bShu);

    }
}
